package pl.edu.agh.nn.backpropagation;

import java.util.List;

import pl.edu.agh.nn.functions.IActivationFunction;
import pl.edu.agh.nn.neuron.AbstractNeuron;

public class BackPropagationNeuron extends AbstractNeuron<BackPropagationSynapse> {

	private double learningSpeed;
	private double momentum;

	public BackPropagationNeuron() {
	}

	public BackPropagationNeuron(IActivationFunction activation, List<BackPropagationSynapse> inputs, double bias,
			double momentum, double learningSpeed) {
		super(activation, inputs, bias);
		this.momentum = momentum;
		this.learningSpeed = learningSpeed;
	}

	public double getLearningSpeed() {
		return learningSpeed;
	}

	public double getMomentum() {
		return momentum;
	}

	public void setLearningSpeed(double learningSpeed) {
		this.learningSpeed = learningSpeed;
	}

	public void setMomentum(double momentum) {
		this.momentum = momentum;
	}

	@Override
	protected BackPropagationSynapse createSynapse(AbstractNeuron<?> neuron) {
		return new BackPropagationSynapse(neuron);
	}

}
